import java.time.LocalTime;
public class ThreadDemo2 {
    //总任务次数
    private final static int COUNT=10;

    public static void main(String[] args) {
        //记录开始执行的时间
        long stime=System.currentTimeMillis();//获取时间戳
        //使用单线程进行执行
       //  singleThread();

        //多线程
        multiThread();
        //记录结束时间
        long etime=System.currentTimeMillis();
        System.out.println("执行时间:"+(etime-stime));
    }

    /**
     * 多线程运行
     */
    private static void multiThread() {
        Thread t=new Thread(()->{
            for (int i = 0; i <COUNT/2 ; i++) {
                try{
                    //每次方法执行需要1s
                    Thread.sleep(1000);
                    System.out.println("新线程:执行了for循环:"+ LocalTime.now());
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        //开始执行线程
        t.start();

        //主线程也进行任务执行
        for (int i = 0; i <COUNT/2 ; i++) {
            try {
                Thread.sleep(1000);
                System.out.println("主线程:执行了for循环:"+LocalTime.now());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        //等待新线程执行完之后
        try {
            t.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }


    /**
     * 单线程任务执行
     */
    private static void singleThread() {
        for (int i = 0; i <COUNT ; i++) {
            try{
                //每次执行需要1s
                Thread.sleep(1000);
            }catch(InterruptedException e){
                e.printStackTrace();
            }
        }
    }
}
